15 CALL PEEK(121) + PEEK(122) *256 +28: REM <CTRL-0x18> HGR2 <CTRL-0x0d> - ATN HGR2 <CTRL-0x06> -<UNKNOWN TOKEN> GOSUB <CTRL-0x02>) SINL<UNKNOWN TOKEN><UNKNOWN TOKEN> IF STOP <UNKNOWN TOKEN> - MID$ = 2 IF <CTRL-0x1e><UNKNOWN TOKEN> - IF = + IF TAB( <UNKNOWN TOKEN> - MID$ = $ IF NEW <UNKNOWN TOKEN> - MID$ = <CTRL-0x1d> ONERR z DEL Q ONERR y DEL P<CTRL-0x18> SPEED= <CTRL-0x1f>ey DEL P HGR2 <CTRL-0x02> ASCQ ONERR P PLOT 0 GET ONERR Q PLOT 1 GET `
16 RETURN
20 PRINT CHR$(4);"BLOAD FILL.OBJ0"
23 FI = 1
30 PRINT CHR$(4);"BRUN QND.STR.9300"
40 HOME : GOSUB 3700
45 FI = 1
50 DIM AA%(1536): DIM AA$(1536):M1 = 2:M2 = 2
60 DIM MS$(14): DIM MS(14): DIM PTR%(128)
70 PRINT
75 IF FI = 1 THEN VTAB 22: HTAB 9: PRINT "**********************";: VTAB 23: HTAB 9: PRINT "*Loading data file...*";: VTAB 24: HTAB 9: PRINT "**********************";
265 IF K$ > = "a" AND K$ = <"z" THEN K$ = CHR$( ASC(K$) -32)
270 IF K$ = "A" THEN GOSUB 1200: GOTO 225
280 IF K$ = "D" THEN GOSUB 1340: GOTO 225
290 IF K$ = "M" THEN GOSUB 2800: GOTO 225
300 IF K$ = "I" THEN GOSUB 760: GOTO 225
310 IF K$ = "O" THEN GOSUB 1090: GOTO 225
330 IF K$ = "F" THEN GOSUB 2430: GOTO 225
340 IF K$ = "E" THEN GOSUB 3380: GOTO 225
350 IF K$ = "C" THEN GOSUB 1980: GOTO 225
355 IF K$ = "P" THEN GOSUB 9000: GOTO 225
360 IF K$ = "Q" THEN GOSUB 3370: GOTO 225
370 IF K$ = "H" THEN GOSUB 5000: GOTO 225
380 P = 9:D = 3: GOSUB 62000: GOTO 260
750 REM MOVEDOWN ONE LEVEL
760 HOME :A$ = "GO IN": GOSUB 10000
770 :
790 Y = 0
800 FOR X = 1 TO HI
810 IF AA%(X) = CI% THEN Y = Y +1:PT%(Y) = X
820 NEXT
830 IF Y = 0 THEN GOSUB 10000: PRINT "There are no items stored below": PRINT "this level.": VTAB 22: HTAB 12: PRINT "Press a key.";: GOSUB 20000: RETURN
1170 IF FR <512 THEN P = 9:D = 3: GOSUB 62000: VTAB 6: HTAB 1: PRINT "You're running out of memory.": PRINT "It's time to split this file.": VTAB 22: HTAB 12: PRINT "Press a key.";: GOSUB 20000: RETURN
1180 B$ = "":C$ = "": PRINT CHR$(4)"FRE"
1190 GOSUB 1810
1200 A$ = "ADD AN ITEM": GOSUB 10000
1203 NI = 0: FOR X = 1 TO HI: IF AA%(X) = CI% THEN NI = NI +1
1204 NEXT : IF NI > = 128 THEN VTAB 12: HTAB 1: PRINT " There are 128 items here.": PRINT " You cannot add any more.": VTAB 22: HTAB 12: PRINT "Press a key.";: GOSUB 20000: RETURN
1205 VTAB 21: HTAB 1: PRINT "Enter name of item to add here:";
1207 VTAB 23: HTAB 10: PRINT "(ESC exits to menu)";
1210 VTAB 22: HTAB 1: GOSUB 61000:A$ = IN$
1220 IF LEN(A$) = 0 THEN RETURN
1230 Y = 0
1240 FOR X = 1 TO 1536
1250 IF AA%(X) = -1 THEN GOSUB 1290
1260 NEXT
1265 :
1270 IF Y = 0 THEN A$ = "ADD AN ITEM": GOSUB 10000: PRINT "File is full.": PRINT "No more items can be added."
1280 RETURN
1290 AA$(X) = A$:AA%(X) = CI%
1300 IF X >HI THEN HI = X
1310 X = 1536:Y = -1
1320 RETURN
1330 REM DELETE AN ITEM
1340 A$ = "DELETE AN ITEM": GOSUB 10000
1370 Y = 0
1380 FOR X = 1 TO HI
1390 IF AA%(X) = CI% THEN Y = Y +1:PT%(Y) = X
1400 NEXT
1410 IF Y = 0 THEN GOSUB 10000: PRINT "There are no items to delete": PRINT "below this level.": VTAB 22: HTAB 12: PRINT "Press a key";: GOSUB 20000: RETURN
1420 X = 0:X1 = 1
1430 GOSUB 7000
1440 CH% = TP +CS: IF NOT CH% THEN RETURN
1450 J = PT%(CH%)
1510 X1 = 0
1535 GOSUB 10000
1540 VTAB 21: HTAB 1: PRINT "Do you want to delete the item";: VTAB 22: HTAB 1: PRINT AA$(J)"(y/n)?";
1560 GOSUB 20000: IF K$ = "Y" THEN 1690
1565 IF K$ < >"N" THEN P = 240:D = 20: GOSUB 62001: GOTO 1560
1570 A$ = "FF": RETURN
1630 PRINT "Any key to continue"
1640 GOSUB 20000
1650 X1 = 0
1660 RETURN
1690 REM J=ITEM # TO DELETE
1695 GOSUB 10000
1700 DL = J:X1 = 0
1710 DL = J
1720 X = 1
1730 IF AA%(X) = DL THEN DL = X: GOTO 1720
1740 X = X +1: IF X >HI THEN GOTO 1760
1750 GOTO 1730
1760 REM
1770 PRINT "Deleting ";AA$(DL)
1780 AA%(DL) = -1:AA$(DL) = ""
1790 IF DL = J THEN VTAB 22: HTAB 12: PRINT "Press any key";: GOSUB 20000:A$ = "FF": RETURN
1800 GOTO 1710
1810 HOME
1820 PRINT " Path to current item is:"
1825 POKE 34,6: POKE 35,19: HOME
1830 IF CL% = 0 THEN GOTO 1920
1840 FOR X = CL% TO 1 STEP -1
1850 J = CI%
1860 FOR Y = X TO 1 STEP -1
1870 J = AA%(J)
1880 NEXT
1890 REM
1900 PRINT " "AA$(J)
1910 NEXT
1920 REM
1930 PRINT " "AA$(CI%)
1960 RETURN
1970 REM CREATE A NEW FILE
1980 A$ = "CLEAR ALL DATA": GOSUB 10000
1985 FOR I = 1 TO 3:P = 96:D = 8: GOSUB 62000: NEXT
1990 PRINT "WARNING! You have chosen a selection": PRINT "which will destroy the current": PRINT "file in memory."
2000 VTAB 21: HTAB 1: PRINT "Press Y to do it.";: VTAB 22: HTAB 1: PRINT "Press N not to.";
2010 GOSUB 20000
2030 IF K$ = "N" THEN RETURN
2040 IF K$ = "Y" THEN 2060
2050 P = 9:D = 3: GOSUB 62000: GOTO 2010
2060 A$ = "CLEAR ALL DATA": GOSUB 10000
2080 VTAB 12: HTAB 4: PRINT "Your new data file is ready.": VTAB 22: HTAB 12: PRINT "Press a key.";: GOSUB 20000
2435 VTAB 21: HTAB 1: PRINT "Enter item to find:";: VTAB 23: HTAB 1: PRINT "(You can enter a word to search for.)";: VTAB 22: HTAB 1: GOSUB 61000:QE$ = IN$: IF LEN(QE$) = 0 THEN RETURN
2440 X1 = 1
2450 X3 = 0
2460 FOR XX = 1 TO HI
2470 IF ( LEN(QE$) = 0) OR ( LEN(AA$(XX)) = 0) THEN GOTO 2510
2480 LO = 0
2490 & GET QE$ ON AA$(XX) AT 0,LO: ROT= 0
2500 IF LO >0 THEN PT%(X1) = XX:X1 = X1 +1:X3 = X3 +1
2510 NEXT XX
2520 IF X3 = 0 THEN GOSUB 10000: PRINT "There are no items with that": PRINT "keyword.": VTAB 21: HTAB 12: PRINT "Press a key.";: GOSUB 20000: RETURN
2530 X2 = 0:Y = X1 -1: GOSUB 7000
2540 CM% = TP +CS: IF NOT CM% THEN RETURN
2550 CM% = PT%(CM%)
2560 GOSUB 10000: PRINT " Here is the path to the item ": PRINT " "AA$(CM%)":"
2570 TI% = CM%: GOSUB 8000
2580 GOSUB 10020
2590 VTAB 21: HTAB 1: PRINT "Do you want to go there (y/n)?";
2600 GOSUB 20000: IF K$ < >"Y" AND K$ < >"N" THEN P = 9:D = 3: GOSUB 62000: GOTO 2600
2610 IF K$ = "N" THEN 2530
2620 CI% = CM%
2640 REM FIND CURRENT LEVEL
2650 CL% = 0
2660 JJ = CI%
2670 IF AA%(JJ) < >0 THEN CL% = CL% +1:JJ = AA%(JJ): GOTO 2670
2680 CL% = CL% +1
2690 GOSUB 1810
2700 RETURN
2705 IF ER = 2 THEN PRINT "Range error.": PRINT "Some number was too big or": PRINT "too small.": GOTO 2780
2805 VTAB 21: HTAB 1: PRINT "Enter what to move:";: VTAB 23: HTAB 1: PRINT "(You can enter a word to search for.)";: VTAB 22: HTAB 1: GOSUB 61000:QE$ = IN$: IF LEN(QE$) = 0 THEN RETURN
2810 X1 = 1
2820 X3 = 0
2830 FOR XX = 1 TO HI
2840 IF ( LEN(QE$) = 0) OR ( LEN(AA$(XX)) = 0) THEN GOTO 2880
2850 LO = 0
2860 & GET QE$ ON AA$(XX) AT 0,LO: ROT= 0
2870 IF LO >0 THEN PT%(X1) = XX:X1 = X1 +1:X3 = X3 +1
2880 NEXT XX
2890 IF X3 = 0 THEN A$ = "MOVE AN ITEM": GOSUB 10000: PRINT "There are no items with that keyword.": VTAB 22: HTAB 12: PRINT "Press a key.";: GOSUB 20000: RETURN
2900 X2 = 0:Y = X1 -1: GOSUB 7000
2910 CM% = TP +CS: IF NOT CM% THEN RETURN
2915 CM% = PT%(CM%)
2920 GOSUB 10000: PRINT " Here is the path to the item": PRINT " "AA$(CM%)":"
2930 TI% = CM%: GOSUB 8000
2940 GOSUB 10020
2950 VTAB 21: HTAB 1: PRINT "Do you want to move this (y/n)?";
2960 GOSUB 20000: IF K$ < >"Y" AND K$ < >"N" THEN P = 9:D = 3: GOSUB 62000: GOTO 2960
2970 IF K$ = "N" THEN 2800
3015 A$ = "MOVE AN ITEM": GOSUB 10000
3020 VTAB 21: HTAB 1: PRINT "Enter item to move to:";: VTAB 23: HTAB 1: PRINT "(You can enter a word to search for.)";: VTAB 22: HTAB 1: GOSUB 61000:QE$ = IN$: IF LEN(QE$) = 0 THEN RETURN
3030 X1 = 1
3040 X3 = 0
3050 FOR XX = 0 TO HI
3060 IF ( LEN(QE$) = 0) OR ( LEN(AA$(XX)) = 0) THEN GOTO 3100
3070 LO = 0
3080 & GET QE$ ON AA$(XX) AT 0,LO: ROT= 0
3090 IF LO >0 THEN PT%(X1) = XX:X1 = X1 +1:X3 = X3 +1
3100 NEXT XX
3110 IF X3 = 0 THEN A$ = "MOVE AN ITEM": GOSUB 10000: PRINT "There are no items with that": PRINT "keyword.": VTAB 22: HTAB 12: PRINT "Press a key.";: GOSUB 20000: RETURN
3120 X2 = 0:Y = X1 -1
3130 GOSUB 7000: IF CS +TP = 0 THEN RETURN
3140 CD% = CS +TP: IF NOT CD% THEN RETURN
3150 :
3160 GOSUB 10000: PRINT " Here is the path to the item": PRINT " "AA$(CD%)":"
3170 TI% = CD%: GOSUB 8000
3180 GOSUB 10020
3185 VTAB 21: HTAB 1: PRINT "Do you want to move item here(y/n)?";
3190 GOSUB 20000: IF K$ < >"Y" AND K$ < >"N" THEN P = 9:D = 3: GOSUB 62000: GOTO 3190
3200 IF K$ = "N" THEN 3015
3210 IF CD% = CM% THEN PRINT :P = 9:D = 3: GOSUB 62000: GOSUB 10000: PRINT "This move is not allowed.": VTAB 22: HTAB 12: PRINT "Press a key.";: GOSUB 20000:CI% = SI%:CL% = SL%: RETURN
3220 IF AA%(CD%) = CM% THEN PRINT :P = 9:D = 3: GOSUB 62000: GOSUB 10000: PRINT "This move is not allowed.": VTAB 22: HTAB 12: PRINT "Press a key.";: GOSUB 20000: RETURN
3230 AA%(CM%) = CD%
3240 J% = CD%
3250 IF AA%(J%) = CM% THEN PRINT :P = 9:D = 3: GOSUB 62000: GOSUB 10000: PRINT "This move is not allowed.": VTAB 22: HTAB 12: PRINT "Press a key.";: GOSUB 20000: RETURN
3255 CI% = CD%
3260 IF AA%(J%) = 0 THEN GOTO 3290
3270 J% = AA%(J%)
3280 GOTO 3250
3290 CI% = CM%
3300 REM FIND CURRENT LEVEL
3310 CL% = 0
3320 JJ = CI%
3330 IF AA%(JJ) < >0 THEN CL% = CL% +1:JJ = AA%(JJ): GOTO 3330
3340 CL% = CL% +1
3350 GOSUB 1810
3355 :
3360 RETURN
3370 A$ = "QUIT": GOSUB 10000: VTAB 12: HTAB 4: PRINT "Save data before quitting?": VTAB 21: HTAB 1: PRINT " Press Y to save data.";: VTAB 22: HTAB 1: PRINT " Press N not to.";: VTAB 13: HTAB 1
3371 GOSUB 20000: ON K$ = "N" GOTO 3372: ON K$ = "Y" GOTO 3378:P = 9:D = 3: GOSUB 62000: GOTO 3371
3372 VTAB 12: HTAB 4: PRINT SPC( 30)
3373 VTAB 21: HTAB 1: PRINT " Press RETURN to quit.";: VTAB 22: HTAB 1: PRINT " Press ESC to go back.";
3385 VTAB 21: HTAB 1: PRINT "Enter item to edit:";: VTAB 23: HTAB 1: PRINT "(You can enter a word to search for.)";: VTAB 22: HTAB 1: GOSUB 61000:QE$ = IN$: IF LEN(QE$) = 0 THEN RETURN
3390 X1 = 1
3400 X3 = 0
3410 FOR XX = 1 TO HI
3420 IF ( LEN(QE$) = 0) OR ( LEN(AA$(XX)) = 0) THEN GOTO 3460
3430 LO = 0
3440 & GET QE$ ON AA$(XX) AT 0,LO: ROT= 0
3450 IF LO >0 THEN PT%(X1) = XX:X1 = X1 +1:X3 = X3 +1
3460 NEXT XX
3470 IF X3 = 0 THEN GOSUB 10000: PRINT "There are no items with that": PRINT "keyword.": VTAB 22: HTAB 12: PRINT "Press a key.";: GOSUB 20000: RETURN
3480 X2 = 0:Y = X1 -1: GOSUB 7000
3490 CM% = CS +TP: IF NOT CM% THEN RETURN
3500 CM% = PT%(CM%)
3510 GOSUB 10000: PRINT " Here is the path to the item": PRINT " "AA$(CM%)":"
3520 TI% = CM%: GOSUB 8000
3530 GOSUB 10020
3540 VTAB 21: HTAB 1: PRINT "Do you want to edit this (y/n)?";
3550 GOSUB 20000: IF K$ < >"Y" AND K$ < >"N" THEN P = 9:D = 3: GOSUB 62000: GOTO 3550
9040 PRINT "You are at ";:TI% = CI%:LE = 12: GOSUB 9400: PRINT ".": IF CH$ < >"A" THEN PRINT "What is here:"
9045 IF CH$ = "A" THEN PRINT "Here is a list of all items:"
9047 LC = LC +1
9050 FOR PP = 1 TO HI
9052 IF LC = 0 THEN PRINT "WHERZ-IT-AT REPORT" SPC( 54 +(PG <10))"Page "PG: PRINT LN$:LC = LC +2
9053 IF AA%(PP) > = 0 THEN IF (AA%(PP) = CI% OR CH$ = "A") THEN PRINT " "AA$(PP);: IF CH$ = "A" THEN PRINT " is at ";:TI% = AA%(PP):LE = LEN(AA$(PP)): GOSUB 9400: PRINT ".";
9055 IF AA%(PP) = CI% OR CH$ = "A" THEN PRINT :LC = LC +1: IF LC >58 THEN PRINT CHR$(12);:LC = 0:PG = PG +1
58025 IF LEFT$(PF$,5) = "/RAM/" THEN PRINT "It doesn't make sense to run": PRINT "Wherz-it-at on a RAM volume.": GET A$:EX = 1: GOTO 58090
58030 PRINT CHR$(4)"open"PF$",tdir"
58040 PRINT CHR$(4)"read"PF$
58050 INPUT K$,K$,K$:CC = 0
58060 INPUT K$
58062 IF K$ = "" THEN 58075
58063 T$ = ""
58065 IF MID$ (K$,2,3) = "WZ." AND MID$ (K$,18,3) = "TXT" THEN T$ = MID$ (K$,5,12):CC = CC +1
58066 IF T$ = "" THEN 58060
58067 HTAB 1 +(20 *(CC/2 = INT(CC/2))): PRINT T$;: IF CC/2 = INT(CC/2) THEN PRINT
58070 IF CC <32 THEN 58060
58072 CC = 2: PRINT "More files. Press a key.": POKE 49168,0: WAIT 49152,128: POKE 34,2: HOME : TEXT : VTAB 3: GOTO 58060
58075 PRINT CHR$(4)"close": IF CC = 0 THEN PRINT "None. You must save some first.": GET A$:EX = 1: GOTO 58090
58090 RETURN
59000 IF A$ > = "a" THEN A$ = CHR$( ASC(A$) -32)
59010 RETURN
60000 CALL PEEK(121) + PEEK(122) *256 +32,IN$: REM GET COS LEN SIN l EXP DEL DEL INPUT DIM , USR COLOR= <CTRL-0x01> GR ROT= COLOR= <CTRL-0x02> VTAB PLOT RIGHT$ LEN SHLOAD SQR`
60010 RETURN
61000 REM <CTRL-0x0a>input in$<CTRL-0x0a>
61009 V = PEEK(37) +1:H = PEEK(36) +1:IW = 36 -H: IF IW >23 THEN IW = 23
61010 REM pass in$:return in$:pass h,v for htab,vtab: pass iw for input width
61070 IF K$ = CHR$(24) THEN IF LEN(IN$) THEN HTAB H: PRINT SPC( LEN(IN$) +1):IN$ = "": GOTO 61020
61080 IF K$ = CHR$(127) THEN K$ = BS$
61085 IF K$ > = "a" THEN K$ = CHR$( ASC(K$) -32)
61090 IF K$ = ES$ THEN IN$ = "": GOTO 61160
61100 IF K$ = BS$ THEN IF LEN(IN$) = 1 THEN IN$ = "": PRINT " "BS$BS$;: GOTO 61040
61110 IF K$ = BS$ THEN IF LEN(IN$) THEN IN$ = LEFT$(IN$, LEN(IN$) -1): PRINT " "BS$BS$;: GOTO 61040
61120 IF K$ = CR$ THEN PRINT " ";: GOTO 61160
61130 IF K$ > = " " THEN IF LEN(IN$) <IW THEN IN$ = IN$ +K$: PRINT K$;: GOTO 61150
61140 P = 9:D = 3: GOSUB 62000
61150 GOTO 61040
61160 RETURN
62000 REM <CTRL-0x0a>HUMMY<CTRL-0x0a>
62001 CALL PEEK(121) + PEEK(122) *256 +32,P,D: REM GET COS g EXP R CHR$ ONERR P PLOT TAN GET GET COS g EXP R CHR$ ONERR P PLOT ATN GET PLOT 0 TAB( GR MID$ MID$ = <CTRL-0x05> OR ATN GET <UNKNOWN TOKEN><CTRL-0x11> * = <CTRL-0x05> RESTORE TAN GET = <UNKNOWN TOKEN> RIGHT$<CTRL-0x01> = MID$ IF TAN GET = PEEK`
62010 RETURN
63000 Q8 = PEEK(184):Q9 = PEEK(185): CALL Q8 +(Q9 -(Q8 >244)) *256 +39: RETURN : REM ONERR # DEL <UNKNOWN TOKEN> NOT <UNKNOWN TOKEN> ONERR <UNKNOWN TOKEN> TO <UNKNOWN TOKEN> ONERR ( DEL * ONERR ) DEL + NOT <UNKNOWN TOKEN> ONERR <UNKNOWN TOKEN> TO <UNKNOWN TOKEN> VTAB <CTRL-0x01> * LOMEM: GR + LEFT$ RETURN ( HGR * STR$! = <UNKNOWN TOKEN> ONERR " AT <UNKNOWN TOKEN> = FRE SPEED= COLOR= VTAB <CTRL-0x01> * LOMEM: HGR ( + LEFT$ STR$! = <UNKNOWN TOKEN>`: